#include <iostream>
#include <string.h>
using namespace std;

int main()
{
	int arr[100] = { 0 };
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> arr[i];
	}
	int i, j;
	for (int i = 1; i <= n; i++)
	{
		int flag = 0;
		for (j = i + 1; j <= n; j++)
		{
			if (arr[j] > arr[i])
			{
				cout << j - i << ' ';
				flag = 1;
				break;
			}
		}
		if (flag == 0)
		{
			cout << "0 ";
		}
	}
	return 0;
}
































//struct Tree {
//	char data;
//	Tree* lchild;
//	Tree* rchild;
//};
//
//void createTree(Tree* &root)
//{
//	char s;
//	cin >> s;
//	if (s == '#')
//	{
//		root = NULL;
//		return;
//	}
//	root = new Tree;
//	root->data = s;
//	createTree(root->lchild);
//	createTree(root->rchild);
//}
//int min(int x, int y)
//{
//	return (x > y) ? y : x;
//}
//int getDeep(Tree*p)
//{
//	if (p == NULL)
//		return 0;
//	if (p->lchild && p->rchild)
//	{
//		return min(getDeep(p->lchild), getDeep(p->rchild)) + 1;
//	}
//	else if (p->lchild != NULL && p->rchild==NULL)
//	{
//		return getDeep(p->lchild) + 1;
//	}
//	else if (p->rchild != NULL && p->lchild==NULL)
//	{
//		return getDeep(p->rchild) + 1;
//	}
//	else
//	{
//		return 1;
//	}
//}
//int main()
//{
//	Tree* p = NULL;
//	createTree(p);
//	int min = getDeep(p);
//	cout << min;
//	return 0;
//}